課題を解いていく
dat.path = "https://lms.gacco.org/asset-v1:gacco+ga063+2016_04+type@asset+block/dummydata_A.csv"
dat <- read.csv(file(dat.path,encoding = "Shift-JIS"))
head(dat, 2)
## ID X3大都市圏か否か 世帯人員 就業人員 住居の所有関係 就業.非就業の別
## 1 A1 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 2 A2 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 年齢階級.5歳階級. 年齢階級.65歳未満か否か. 集計用乗率 年間収入.円.
## 1 1_30歳未満 1_65歳未満 538.5333 4,216,755
## 2 1_30歳未満 1_65歳未満 538.5333 4,362,659
## 消費支出額.合計. 食費 住居費 光熱.水道費 家具.家事用品費
## 1 541,403 55,410 897 13,965 8,725
## 2 122,635 25,878 1,153 12,253 2,425
## 被服及び履物費 保健医療費 交通.通信費 教育費 教養娯楽費 その他の消費支出
## 1 6,693 2,061 15,578 0 21,878 416,193
## 2 16,491 8,031 28,731 0 16,019 11,649
colnames(dat[,c(10:ncol(dat))])
## [1] "年間収入.円." "消費支出額.合計." "食費"
## [4] "住居費" "光熱.水道費" "家具.家事用品費"
## [7] "被服及び履物費" "保健医療費" "交通.通信費"
## [10] "教育費" "教養娯楽費" "その他の消費支出"
dat2 <- apply(dat[,c(10:ncol(dat))], 1:2, function(x){return (as.integer(gsub(",","",x)))})
head(dat2, 3)
## 年間収入.円. 消費支出額.合計. 食費 住居費 光熱.水道費
## [1,] 4216755 541403 55410 897 13965
## [2,] 4362659 122635 25878 1153 12253
## [3,] 4601661 387940 29352 924 13822
## 家具.家事用品費 被服及び履物費 保健医療費 交通.通信費 教育費
## [1,] 8725 6693 2061 15578 0
## [2,] 2425 16491 8031 28731 0
## [3,] 2060 9120 5648 23313 0
## 教養娯楽費 その他の消費支出
## [1,] 21878 416193
## [2,] 16019 11649
## [3,] 22067 281630
head(dat[,c(1:9)])
## ID X3大都市圏か否か 世帯人員 就業人員 住居の所有関係 就業.非就業の別
## 1 A1 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 2 A2 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 3 A3 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 4 A4 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 5 A5 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 6 A6 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 年齢階級.5歳階級. 年齢階級.65歳未満か否か. 集計用乗率
## 1 1_30歳未満 1_65歳未満 538.5333
## 2 1_30歳未満 1_65歳未満 538.5333
## 3 1_30歳未満 1_65歳未満 538.5333
## 4 1_30歳未満 1_65歳未満 538.5333
## 5 1_30歳未満 1_65歳未満 538.5333
## 6 1_30歳未満 1_65歳未満 538.5333
dat2 <- cbind(dat[,c(1:9)], dat2)
head(dat2, 3)
## ID X3大都市圏か否か 世帯人員 就業人員 住居の所有関係 就業.非就業の別
## 1 A1 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 2 A2 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 3 A3 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 年齢階級.5歳階級. 年齢階級.65歳未満か否か. 集計用乗率 年間収入.円.
## 1 1_30歳未満 1_65歳未満 538.5333 4216755
## 2 1_30歳未満 1_65歳未満 538.5333 4362659
## 3 1_30歳未満 1_65歳未満 538.5333 4601661
## 消費支出額.合計. 食費 住居費 光熱.水道費 家具.家事用品費 被服及び履物費
## 1 541403 55410 897 13965 8725 6693
## 2 122635 25878 1153 12253 2425 16491
## 3 387940 29352 924 13822 2060 9120
## 保健医療費 交通.通信費 教育費 教養娯楽費 その他の消費支出
## 1 2061 15578 0 21878 416193
## 2 8031 28731 0 16019 11649
## 3 5648 23313 0 22067 281630
summary(dat2)
## ID X3大都市圏か否か 世帯人員 就業人員
## A1 : 1 0_3大都市圏以外:6018 2_2人 :4077 1_1人以下:5415
## A10 : 1 1_3大都市圏 :3982 3_3人以上:5923 2_2人以上:4585
## A100 : 1
## A1000 : 1
## A10000 : 1
## A1001 : 1
## (Other):9994
## 住居の所有関係 就業.非就業の別 年齢階級.5歳階級.
## 1_持ち家 :7821 1_就業 :7349 9_65歳以上:2952
## 2_借家・借間:2179 2_非就業:2651 7_55〜59歳:1122
## 6_50〜54歳:1023
## 5_45〜49歳: 951
## 4_40〜44歳: 927
## 8_60〜64歳: 894
## (Other) :2131
## 年齢階級.65歳未満か否か. 集計用乗率 年間収入.円.
## 1_65歳未満:7048 Min. : 510.1 Min. : 1987335
## 2_65歳以上:2952 1st Qu.: 568.0 1st Qu.: 4365962
## Median : 599.8 Median : 5993425
## Mean : 694.8 Mean : 6213681
## 3rd Qu.: 811.6 3rd Qu.: 7942727
## Max. :1365.9 Max. :12251614
##
## 消費支出額.合計. 食費 住居費 光熱.水道費
## Min. : 70370 Min. : 9094 Min. : 1.0 Min. : 3893
## 1st Qu.: 199213 1st Qu.: 43994 1st Qu.: 725.8 1st Qu.:12671
## Median : 259628 Median : 57522 Median : 3464.0 Median :16236
## Mean : 291878 Mean : 65594 Mean : 17487.3 Mean :18488
## 3rd Qu.: 342923 3rd Qu.: 84098 3rd Qu.: 22085.0 3rd Qu.:23161
## Max. :2523213 Max. :226852 Max. :1040029.0 Max. :75631
##
## 家具.家事用品費 被服及び履物費 保健医療費 交通.通信費
## Min. : 75 Min. : 77 Min. : 101 Min. : 126
## 1st Qu.: 2839 1st Qu.: 3763 1st Qu.: 3787 1st Qu.: 10338
## Median : 5595 Median : 7468 Median : 7618 Median : 23272
## Mean : 9214 Mean : 11873 Mean : 13239 Mean : 44037
## 3rd Qu.: 11081 3rd Qu.: 14547 3rd Qu.: 15444 3rd Qu.: 49090
## Max. :252301 Max. :306524 Max. :450453 Max. :1359528
##
## 教育費 教養娯楽費 その他の消費支出
## Min. : 0 Min. : 362 Min. : 631
## 1st Qu.: 0 1st Qu.: 11768 1st Qu.: 24284
## Median : 1600 Median : 20969 Median : 43228
## Mean : 14293 Mean : 30329 Mean : 67319
## 3rd Qu.: 12451 3rd Qu.: 37538 3rd Qu.: 78361
## Max. :2142757 Max. :867614 Max. :1551469
##
今回は、欠測もなくただの整数なのでなにも気にしなくて良いが、気にするときはどうすべきかな?
library(reshape2)
head(melt(dat2), 3)
## Using ID, X3大都市圏か否か, 世帯人員, 就業人員, 住居の所有関係, 就業.非就業の別, 年齢階級.5歳階級., 年齢階級.65歳未満か否か. as id variables
## ID X3大都市圏か否か 世帯人員 就業人員 住居の所有関係 就業.非就業の別
## 1 A1 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 2 A2 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 3 A3 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 年齢階級.5歳階級. 年齢階級.65歳未満か否か. variable value
## 1 1_30歳未満 1_65歳未満 集計用乗率 538.5333
## 2 1_30歳未満 1_65歳未満 集計用乗率 538.5333
## 3 1_30歳未満 1_65歳未満 集計用乗率 538.5333
パラメータなしでmeltするだけで、気持ちよく整形してくれる
colnames(dat2[2:8])
## [1] "X3大都市圏か否か" "世帯人員"
## [3] "就業人員" "住居の所有関係"
## [5] "就業.非就業の別" "年齢階級.5歳階級."
## [7] "年齢階級.65歳未満か否か."
paste(colnames(dat2[2:8]), collapse = "+")
## [1] "X3大都市圏か否か+世帯人員+就業人員+住居の所有関係+就業.非就業の別+年齢階級.5歳階級.+年齢階級.65歳未満か否か."
paste(paste(colnames(dat2[2:8]), collapse = "+"), "~variable")
## [1] "X3大都市圏か否か+世帯人員+就業人員+住居の所有関係+就業.非就業の別+年齢階級.5歳階級.+年齢階級.65歳未満か否か. ~variable"
head(dcast(melt(dat2), paste(paste(colnames(dat2[2:8]), collapse = "+"), "~variable"), mean), 3)
## Using ID, X3大都市圏か否か, 世帯人員, 就業人員, 住居の所有関係, 就業.非就業の別, 年齢階級.5歳階級., 年齢階級.65歳未満か否か. as id variables
## X3大都市圏か否か 世帯人員 就業人員 住居の所有関係 就業.非就業の別
## 1 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 2 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 3 0_3大都市圏以外 2_2人 1_1人以下 1_持ち家 1_就業
## 年齢階級.5歳階級. 年齢階級.65歳未満か否か. 集計用乗率 年間収入.円.
## 1 1_30歳未満 1_65歳未満 538.5333 4498780
## 2 2_30〜34歳 1_65歳未満 647.1538 3975750
## 3 3_35〜39歳 1_65歳未満 531.4643 4659284
## 消費支出額.合計. 食費 住居費 光熱.水道費 家具.家事用品費
## 1 230510.9 34844.33 1558.778 12746.33 4889.556
## 2 437518.0 45084.00 1982.600 18053.40 14270.400
## 3 168438.3 38269.50 6800.227 13538.05 7739.864
## 被服及び履物費 保健医療費 交通.通信費 教育費 教養娯楽費
## 1 8194.444 5638.556 25982.33 0.000 16405.22
## 2 20510.200 7440.800 274923.40 8495.400 15377.60
## 3 7753.909 5803.318 19187.55 2176.545 20455.00
## その他の消費支出
## 1 120247.33
## 2 31376.00
## 3 46709.82
dcast(melt(dat2), 住居の所有関係 + 就業.非就業の別 ~ variable, mean)
## Using ID, X3大都市圏か否か, 世帯人員, 就業人員, 住居の所有関係, 就業.非就業の別, 年齢階級.5歳階級., 年齢階級.65歳未満か否か. as id variables
## 住居の所有関係 就業.非就業の別 集計用乗率 年間収入.円. 消費支出額.合計.
## 1 1_持ち家 1_就業 674.8666 7603804 327117.2
## 2 1_持ち家 2_非就業 678.7376 4183803 241786.9
## 3 2_借家・借間 1_就業 749.4004 5198573 269512.7
## 4 2_借家・借間 2_非就業 825.5818 2891429 182382.8
## 食費 住居費 光熱.水道費 家具.家事用品費 被服及び履物費 保健医療費
## 1 77598.56 7996.726 20763.52 9993.894 13867.359 13056.92
## 2 53631.68 13255.391 16934.38 9399.955 8623.570 16412.30
## 3 48745.29 47638.423 14636.76 7284.458 11179.691 10177.31
## 4 42213.80 38062.981 12845.62 5819.540 5433.882 11346.39
## 交通.通信費 教育費 教養娯楽費 その他の消費支出
## 1 50657.83 21032.745 33162.54 78982.71
## 2 32267.59 1753.600 32004.61 57499.65
## 3 43661.64 11874.867 22743.61 51566.23
## 4 19209.39 2647.879 14556.17 30243.03
melt(dcast(melt(dat2), 住居の所有関係 + 就業.非就業の別 ~ variable, mean))
## Using ID, X3大都市圏か否か, 世帯人員, 就業人員, 住居の所有関係, 就業.非就業の別, 年齢階級.5歳階級., 年齢階級.65歳未満か否か. as id variables
## Using 住居の所有関係, 就業.非就業の別 as id variables
## 住居の所有関係 就業.非就業の別 variable value
## 1 1_持ち家 1_就業 集計用乗率 674.8666
## 2 1_持ち家 2_非就業 集計用乗率 678.7376
## 3 2_借家・借間 1_就業 集計用乗率 749.4004
## 4 2_借家・借間 2_非就業 集計用乗率 825.5818
## 5 1_持ち家 1_就業 年間収入.円. 7603804.0054
## 6 1_持ち家 2_非就業 年間収入.円. 4183803.1435
## 7 2_借家・借間 1_就業 年間収入.円. 5198573.4030
## 8 2_借家・借間 2_非就業 年間収入.円. 2891428.5452
## 9 1_持ち家 1_就業 消費支出額.合計. 327117.2190
## 10 1_持ち家 2_非就業 消費支出額.合計. 241786.9296
## 11 2_借家・借間 1_就業 消費支出額.合計. 269512.6885
## 12 2_借家・借間 2_非就業 消費支出額.合計. 182382.7945
## 13 1_持ち家 1_就業 食費 77598.5566
## 14 1_持ち家 2_非就業 食費 53631.6842
## 15 2_借家・借間 1_就業 食費 48745.2949
## 16 2_借家・借間 2_非就業 食費 42213.7973
## 17 1_持ち家 1_就業 住居費 7996.7265
## 18 1_持ち家 2_非就業 住居費 13255.3911
## 19 2_借家・借間 1_就業 住居費 47638.4234
## 20 2_借家・借間 2_非就業 住居費 38062.9808
## 21 1_持ち家 1_就業 光熱.水道費 20763.5192
## 22 1_持ち家 2_非就業 光熱.水道費 16934.3819
## 23 2_借家・借間 1_就業 光熱.水道費 14636.7563
## 24 2_借家・借間 2_非就業 光熱.水道費 12845.6164
## 25 1_持ち家 1_就業 家具.家事用品費 9993.8945
## 26 1_持ち家 2_非就業 家具.家事用品費 9399.9545
## 27 2_借家・借間 1_就業 家具.家事用品費 7284.4576
## 28 2_借家・借間 2_非就業 家具.家事用品費 5819.5397
## 29 1_持ち家 1_就業 被服及び履物費 13867.3586
## 30 1_持ち家 2_非就業 被服及び履物費 8623.5700
## 31 2_借家・借間 1_就業 被服及び履物費 11179.6907
## 32 2_借家・借間 2_非就業 被服及び履物費 5433.8822
## 33 1_持ち家 1_就業 保健医療費 13056.9216
## 34 1_持ち家 2_非就業 保健医療費 16412.3001
## 35 2_借家・借間 1_就業 保健医療費 10177.3076
## 36 2_借家・借間 2_非就業 保健医療費 11346.3918
## 37 1_持ち家 1_就業 交通.通信費 50657.8345
## 38 1_持ち家 2_非就業 交通.通信費 32267.5910
## 39 2_借家・借間 1_就業 交通.通信費 43661.6400
## 40 2_借家・借間 2_非就業 交通.通信費 19209.3918
## 41 1_持ち家 1_就業 教育費 21032.7453
## 42 1_持ち家 2_非就業 教育費 1753.6002
## 43 2_借家・借間 1_就業 教育費 11874.8666
## 44 2_借家・借間 2_非就業 教育費 2647.8795
## 45 1_持ち家 1_就業 教養娯楽費 33162.5411
## 46 1_持ち家 2_非就業 教養娯楽費 32004.6067
## 47 2_借家・借間 1_就業 教養娯楽費 22743.6086
## 48 2_借家・借間 2_非就業 教養娯楽費 14556.1671
## 49 1_持ち家 1_就業 その他の消費支出 78982.7127
## 50 1_持ち家 2_非就業 その他の消費支出 57499.6540
## 51 2_借家・借間 1_就業 その他の消費支出 51566.2255
## 52 2_借家・借間 2_非就業 その他の消費支出 30243.0274
subset(melt(dcast(melt(dat2), 住居の所有関係 + 就業.非就業の別 ~ variable, mean)), variable=="教養娯楽費")
## Using ID, X3大都市圏か否か, 世帯人員, 就業人員, 住居の所有関係, 就業.非就業の別, 年齢階級.5歳階級., 年齢階級.65歳未満か否か. as id variables
## Using 住居の所有関係, 就業.非就業の別 as id variables
## 住居の所有関係 就業.非就業の別 variable value
## 45 1_持ち家 1_就業 教養娯楽費 33162.54
## 46 1_持ち家 2_非就業 教養娯楽費 32004.61
## 47 2_借家・借間 1_就業 教養娯楽費 22743.61
## 48 2_借家・借間 2_非就業 教養娯楽費 14556.17
よしいい感じ
散布図を見ていく
library(dygraphs)
dygraph(dat2[,c("食費","教養娯楽費")])
plot(dat2[,c("食費","教養娯楽費")])
これじゃなかった。。。
library(rCharts)
#rPlot(食費 ~ 教養娯楽費 , data = dat2, type="point")
このままプロットするとRMarkdownでおちるみたい。。
library(rCharts)
n1 <- rPlot(教養娯楽費 ~ 食費, data = dat2, type="point")
n1$print(include_assets=TRUE)
#n1$show("iframesrc", cdn = TRUE)
pairs(dat2[9:ncol(dat2)])
#plot(dat2[10:ncol(dat2)])
#plot(iris)
#cor(iris)
別の方法でも
#install.packages("psych")
library(psych)
pairs.panels(dat2[9:ncol(dat2)])
散布図行列は多変数には向かない
#install.packages("qgraph")
library(qgraph)
## Warning: package 'qgraph' was built under R version 3.2.5
#qgraph(cor(dat2[,c(10:ncol(dat2))]),edge.labels=T)
# Col name
dat2.parts <- dat2[,c(9:ncol(dat2))]
colnames(dat2.parts) <- 1:ncol(dat2.parts)
names.map <- cbind(colnames(dat2.parts), colnames(dat2[,c(9:ncol(dat2))]))
names.map
## [,1] [,2]
## [1,] "1" "集計用乗率"
## [2,] "2" "年間収入.円."
## [3,] "3" "消費支出額.合計."
## [4,] "4" "食費"
## [5,] "5" "住居費"
## [6,] "6" "光熱.水道費"
## [7,] "7" "家具.家事用品費"
## [8,] "8" "被服及び履物費"
## [9,] "9" "保健医療費"
## [10,] "10" "交通.通信費"
## [11,] "11" "教育費"
## [12,] "12" "教養娯楽費"
## [13,] "13" "その他の消費支出"
cor(dat2.parts)
## 1 2 3 4 5
## 1 1.000000000 0.03303122 0.02111651 -0.007093162 0.1360788551
## 2 0.033031223 1.00000000 0.42236660 0.627179977 -0.1522640162
## 3 0.021116509 0.42236660 1.00000000 0.416400775 0.1813296657
## 4 -0.007093162 0.62717998 0.41640077 1.000000000 -0.1174578777
## 5 0.136078855 -0.15226402 0.18132967 -0.117457878 1.0000000000
## 6 -0.113519207 0.42963497 0.32126807 0.628176087 -0.1070055688
## 7 -0.029793426 0.06151691 0.10508810 0.058155529 -0.0431933198
## 8 0.036572340 0.18582570 0.17741076 0.110409587 -0.0233655743
## 9 0.009218828 -0.01252829 0.12284103 0.014098007 -0.0261746207
## 10 -0.018120989 0.14712477 0.55278061 0.105197205 -0.0005647822
## 11 0.015854010 0.24424811 0.40124772 0.168229212 -0.0369274450
## 12 0.067948749 0.09919296 0.25387291 0.070011501 -0.0465730118
## 13 -0.037295902 0.20680581 0.61297019 0.128072740 -0.0389718182
## 6 7 8 9 10
## 1 -0.11351921 -0.0297934258 0.0365723402 0.0092188276 -0.0181209886
## 2 0.42963497 0.0615169113 0.1858256988 -0.0125282915 0.1471247668
## 3 0.32126807 0.1050880997 0.1774107555 0.1228410334 0.5527806111
## 4 0.62817609 0.0581555294 0.1104095867 0.0140980070 0.1051972046
## 5 -0.10700557 -0.0431933198 -0.0233655743 -0.0261746207 -0.0005647822
## 6 1.00000000 0.0416077028 0.0809913149 0.0208348037 0.0908257064
## 7 0.04160770 1.0000000000 -0.0001792092 0.0008468233 0.0069246713
## 8 0.08099131 -0.0001792092 1.0000000000 -0.0006263670 0.0237582713
## 9 0.02083480 0.0008468233 -0.0006263670 1.0000000000 -0.0222992683
## 10 0.09082571 0.0069246713 0.0237582713 -0.0222992683 1.0000000000
## 11 0.13597030 0.0061245891 0.0651453620 0.0014366565 0.0579117710
## 12 0.04727134 -0.0003599830 0.0181509230 0.0198852253 0.0060463449
## 13 0.09677463 0.0266859717 0.0388558797 -0.0028229072 0.0231781891
## 11 12 13
## 1 0.015854010 0.067948749 -0.037295902
## 2 0.244248111 0.099192958 0.206805812
## 3 0.401247719 0.253872908 0.612970188
## 4 0.168229212 0.070011501 0.128072740
## 5 -0.036927445 -0.046573012 -0.038971818
## 6 0.135970300 0.047271344 0.096774632
## 7 0.006124589 -0.000359983 0.026685972
## 8 0.065145362 0.018150923 0.038855880
## 9 0.001436656 0.019885225 -0.002822907
## 10 0.057911771 0.006046345 0.023178189
## 11 1.000000000 0.014986554 0.009045272
## 12 0.014986554 1.000000000 0.021706160
## 13 0.009045272 0.021706160 1.000000000
qgraph(cor(dat2.parts),edge.labels=T)
qgraph(cor(dat2.parts),edge.labels=T,minimum=.2,edge.color="black")
# みたいやつだけ残す
tmp.cor <- cor(dat2.parts)
tmp.cor[,-2] <- 0
tmp.cor[2,2] <- 0
tmp.cor
## 1 2 3 4 5 6 7 8 9 10 11 12 13
## 1 0 0.03303122 0 0 0 0 0 0 0 0 0 0 0
## 2 0 0.00000000 0 0 0 0 0 0 0 0 0 0 0
## 3 0 0.42236660 0 0 0 0 0 0 0 0 0 0 0
## 4 0 0.62717998 0 0 0 0 0 0 0 0 0 0 0
## 5 0 -0.15226402 0 0 0 0 0 0 0 0 0 0 0
## 6 0 0.42963497 0 0 0 0 0 0 0 0 0 0 0
## 7 0 0.06151691 0 0 0 0 0 0 0 0 0 0 0
## 8 0 0.18582570 0 0 0 0 0 0 0 0 0 0 0
## 9 0 -0.01252829 0 0 0 0 0 0 0 0 0 0 0
## 10 0 0.14712477 0 0 0 0 0 0 0 0 0 0 0
## 11 0 0.24424811 0 0 0 0 0 0 0 0 0 0 0
## 12 0 0.09919296 0 0 0 0 0 0 0 0 0 0 0
## 13 0 0.20680581 0 0 0 0 0 0 0 0 0 0 0
qgraph(tmp.cor,edge.labels=T)
### ヒートマップ
cor.plot(cor(dat2.parts) ,numbers = T)